<?php

class Users extends CI_Controller {

    function index() {
        
        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } else {
            
            //Загружаем отображение шапки
            $this->load->view('top');

            //Загружаем модель пользователей
            $this->load->model('Users_model', '', TRUE);

            //Получаем данные с БД
            $content = $this->Users_model->get_last_ten_entries();

            //Генерация таблицы
            
            $option = array(
                '0' => 'Администратор',
                '1' => 'Модератор',
                '2' => 'Пользователь'
            );
            
            $tbl = '<table class="outtable" border="1">
                     <tr><td>id</td><td>Логин</td><td>Права</td><td>Дата регистрации</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
            foreach ($content as $row)
                $tbl .= '<tr><td>' . $row['users_id'] . '</td><td>' . $row['users_login'] . '</td><td>' . $option[$row['users_rules']] . '</td><td>' . $row['users_date'] . '</td>
                         <td><a href="' . site_url('users/edit/' . $row['users_id']) . '">Edit</a></td>
                         <td><a href="' . site_url('users/drop/' . $row['users_id']) . '">Drop</a></td></tr>';
            $tbl .= '</table>';
            $table['table'] = $tbl;
            $table['add'] = site_url('users/add');

            //Загружаем отображение Пользователи 
            $this->load->view('temp_users', $table);

            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
    }
    
    function add(){
        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } 
        else {
            
            //Загружаем отображение шапки
            $this->load->view('top');
            
            //Загружаем библиотеку Table
            $this->load->library('table');
            
            //Загружаем модель пользователей
            $this->load->model('Users_model', '', TRUE);
            
            //Сборка данных для отображения
            $add['form'] = form_open();
            $option = array(
                '0' => 'Администратор',
                '1' => 'Модератор',
                '2' => 'Пользователь'
            );
            $data = array(
                array('Логин:', form_input('users_login', $this->input->post('users_login'))),
                array('Пароль:', form_input('users_password', $this->input->post('users_password'))),
                array('Права:', form_dropdown('users_rules', $option, $this->input->post('users_rules'))),
                array('', form_submit('go', 'Добавить'))
            );
            $tmpl = array(
                'table_open' => '<table class="outtable" border="0">',
                'heading_cell_start' => '<td valign="top" align="left">',
                'heading_cell_end' => '</td>',
                'cell_start' => '<td valign="top" align="left">',
                'cell_end' => '</td>',
                'cell_alt_start' => '<td valign="top" align="left">',
                'cell_alt_end' => '</td>',
            );
            $this->table->set_template($tmpl);
            $add['form'] .= $this->table->generate($data);
            $add['form'] .= form_close();
            
            //Обработчик событий
            if (isset($_POST['users_login'])) {
                if ($this->input->post('users_login') == FALSE)
                    $add['error'] = 'Не заполнено поле "Логин".';
                elseif ($this->input->post('users_password') == FALSE)
                    $add['error'] = 'Не заполнено поле "Пароль".';
                elseif ($this->Users_model->isset_login($this->input->post('users_login')) == true)
                    $add['error'] = 'Простите, введенный логин уже существует.';
                else {
                    $data = array(
                        'users_login' => $this->input->post('users_login'),
                        'users_password' => md5($this->input->post('users_password')),
                        'users_date' => date('Y-m-d H:i:s'),
                        'users_rules' => $this->input->post('users_rules')
                    );
                    $this->Users_model->insert_one_entrie($data);
                    $add['error'] = 'Успешно записано!';
                }
            }
            else
                $add['error'] = 'Пожалуйста, заполните все поля.';
            
            //Загружаем отображение Пользователи 
            $this->load->view('temp_users_add', $add);
            
            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
    }
    
    function drop ($id, $drop = '0')
    {
        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } else {

            //Загружаем отображение шапки
            $this->load->view('top');
            
            //Загружаем модель пользователей
            $this->load->model('Users_model', '', TRUE);
            
            if ($drop == '0') {
                $vdrop['ask'] = 'Удалить запись #' . $id . '?';
                $vdrop['url_yes'] = site_url('users/drop/' . $id . '/yes');
                $vdrop['url_no'] = site_url('users/drop/' . $id . '/no');
                $vdrop['drop'] = $drop;
            }
            elseif ($drop == 'yes') {
                $vdrop['drop'] = $drop;

                //Удалить одну запись если пользователь не с id 1
                if ($id != '1')
                    $this->Users_model->drop_one_entrie($id);

                redirect('/users', 'refresh');
            }
            else {
                $vdrop['drop'] = $drop;
                redirect('/users', 'refresh');
            }
            //Загружаем отображение удаления
            $this->load->view('temp_users_drop', $vdrop);
            
            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
        
    }
    
    function edit($id){
        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } else {
            
            //Загружаем отображение шапки
            $this->load->view('top');
            
            //Загружаем модель пользователей
            $this->load->model('Users_model', '', TRUE);
            
            //Загружаем библиотеку Table
            $this->load->library('table');
            
            //Получение данных из БД
            $content = $this->Users_model->get_one_entrie($id);
            
            if (!isset($_POST['users_password'])) {
                $users_login = $content['0']['users_login'];
                $users_password = '';
                $users_rules = $content['0']['users_rules'];
                $users_date = $content['0']['users_date'];
            } else {
                $users_login = $content['0']['users_login'];
                $users_password = $this->input->post('users_password');
                $users_rules = $this->input->post('users_rules');
                $users_date = $content['0']['users_date'];
                
            }
            
            //Обработчик событий
            if (isset($_POST['users_password'])) {
                if ($id != '1')
                {
                    $data = array(
                        'users_rules' => $users_rules,
                    );
                    if ($users_password != NULL)
                        $data['users_password'] = md5($users_password);
                    $this->Users_model->update_one_entrie($id, $data);
                    $edit['error'] = 'Успешно записано!';
                }
                else
                    $edit['error'] = 'Редактировать данного пользователя - <strong>запрещено</strong>!';
            }
            else
                $edit['error'] = 'Отредактируйте требуемые поля.';
            
            //Сборка данных для отображения
            $edit['form'] = form_open();
            $option = array(
                '0' => 'Администратор',
                '1' => 'Модератор',
                '2' => 'Пользователь'
            );
            $data = array(
                array('Логин:', '<b>'.$users_login.'</b>'),
                array('Зарегистрирован:', '<b>'.$users_date.'</b>'),
                array('Пароль:', form_input('users_password', $users_password)),
                array('Права:', form_dropdown('users_rules', $option, $users_rules)),
                array('', form_submit('go', 'Изменить'))
            );
            $tmpl = array(
                'table_open' => '<table class="outtable" border="0">',
                'heading_cell_start' => '<td valign="top" align="left">',
                'heading_cell_end' => '</td>',
                'cell_start' => '<td valign="top" align="left">',
                'cell_end' => '</td>',
                'cell_alt_start' => '<td valign="top" align="left">',
                'cell_alt_end' => '</td>',
            );
            $this->table->set_template($tmpl);
            $edit['form'] .= $this->table->generate($data);
            $edit['form'] .= form_close();
            
            $edit['id'] = $id;
            
            //Загружаем отображение редактирования
            $this->load->view('temp_users_edit', $edit);
            
            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
    }

}

?>
